/* exercice 2*/ /* la liste d'entiers n'est pas vide*/ maximum([N],N):-!. maximum([N|H],R):- maximum(H,M), (N>=M-> R=N;R=M). /* la liste de liste n'est pas vide*/ max_liste([L],L):-!. max_liste([G|H],L):-max_liste(H,K), length(G,N),length(K,M), (N>=M-> L=G;L=K). selection([X],_,X):-!. selection([Y|L],C,R):-selection(L,C,Z), Q=..[C,Y,Z,R], Q. /* exercice 3*/ /* /* / \ / / / /\ */ /* /\ /\ / / / / \ */ /* /\/\/\/\ / / /\ / \ */ /* / /\ /\/\ /* j'ai accepté les solutions où le cut n'ajoute pas un niveau */ /* 3.2 (par exemple)*/ binaire_complet(O):-!. binaire_complet(N):-M is N-1, binaire_complet(M). binaire_complet(N):-M is N-1, binaire_complet(M). /*but: binaire_complet(n)*/ fil(0):-!. fil(N):-M is N-1, fil(M). /*but: fil(n)*/ /*exercice 4*/ sous_listes([],[]). sous_listes([X],[[X]]). sous_listes([X,Y|L],[[X|G]|K]):-X